class Solution {

public:
    int maxFrequency(vector<int>& nums, int k, int numOperations) {
        
        map<int,int> has;
        unordered_map<int,int> cnt;
        int n=nums.size();
        for(int i=0;i<n;++i){
            ++cnt[nums[i]];
            has[nums[i]]+=0;
            ++has[nums[i]-k];
            --has[nums[i]+k+1];
        }
        int sum=0;
        int nRet=0;
        for(auto& e : has){
            sum+=e.second;
            nRet=max(nRet,min(sum,cnt[e.first]+numOperations));
        }

        return nRet;
    }
};
